"""
主题: 改变对象的字符串显示
问题: 你想改变对象实例的打印或显示输出，让它们更具可读性。
提示 : 
"""

class Pair:
    '''新定义它的 __str__() 和 __repr__() 方法'''
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __repr__(self):
        '''返回一个实例的代码表示形式'''
        return 'Pair({0.x!r}, {0.y!r})'.format(self)

    def __str__(self):
        '''将实例转换为一个字符串，使用 str() 或 print() 函数会输出这个字符串'''
        return '({0.x!s}, {0.y!s})'.format(self)

def recipe1():
    p = Pair(3, 4)
    print(f"{p = }")
    print(p)
    print('p is {0!r}'.format(p))
    print('p is {0}'.format(p))

def main():
    print('recipe1'.center(20, '*'))
    recipe1()


if __name__ == '__main__':
    main()           